<!DOCTYPE html>
<!-- saved from url=(0127)https://docs.google.com/document/d/e/2PACX-1vQUJHxJRB8Vy2yv77OvDu7zKHOKKerkYLo0gjThMt2SWijTxd4JNQPnA8FKV52Uc_zADP_o-LUSGguD/pub -->
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>WebPerfWG meeting minutes - April 23rd 2019</title><link rel="shortcut icon" href="https://ssl.gstatic.com/docs/documents/images/kix-favicon7.ico"><meta name="referrer" content="strict-origin-when-cross-origin"><style type="text/css" nonce="">
      @import url("https://fonts.googleapis.com/css?family=Google+Sans");
      @import url("https://fonts.googleapis.com/css?family=Roboto");

      body {
        font-family: Roboto, arial, sans, sans-serif;
        margin: 0;
      }

      iframe {
        border: 0;
        frameborder: 0;
        height: 100%;
        width: 100%;
      }

      #header {
        align-items: center;
        background: white;
        border-bottom: 1px #ccc solid;
        display: flex;
        height: 60px;
        justify-content: space-between;
        position: fixed;
        top: 0;
        width: 100%;
        z-index: 100;
      }

      #header #title {
        font-family: 'Google Sans';
        font-size: large;
        margin: auto 0 auto 20px;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
        width: 70%;
      }

      #header #interval {
        margin: auto 25px auto 0;
        font-family: Roboto;
        font-size: small;;
      }

      #footer {
        background: #f0f0f0;
        border-bottom: 1px #ccc solid;
        bottom: 0;
        font-family: Roboto;
        font-size: small;
        padding: 10px 10px;
        position: fixed;
        text-align: center;
        width: 100%;
      }

      #contents {
        padding: 100px 20% 50px 20%;
      }

      @media only screen and (max-device-width: 800px) {
        #header {
          border-bottom-width: 5px;
          height: auto;
          display: block;
        }

        #header #title {
          font-size: 3em;
          margin: auto 0 auto 20px;
          width: 90%;
        }

        #header #interval {
          font-size: 1.5em;
          margin: 10px 0 auto 25px;
        }

        #contents {
          padding: 150px 5% 80px;
        }

        #footer {
          font-size: 2em;
        }
      }

      .dash {
        padding: 0 6px;
      }
    </style></head><body><div id="header"><div id="title">WebPerfWG meeting minutes - April 23rd 2019</div><div id="interval"><span></span></div></div><div id="contents"><style type="text/css">ul.lst-kix_mj183oblwdus-2{list-style-type:none}ul.lst-kix_mj183oblwdus-3{list-style-type:none}ul.lst-kix_mj183oblwdus-0{list-style-type:none}ul.lst-kix_mj183oblwdus-1{list-style-type:none}ul.lst-kix_mj183oblwdus-6{list-style-type:none}ul.lst-kix_mj183oblwdus-7{list-style-type:none}ul.lst-kix_mj183oblwdus-4{list-style-type:none}ul.lst-kix_mj183oblwdus-5{list-style-type:none}.lst-kix_pbtjvvw2nq94-8>li:before{content:"\0025a0  "}ul.lst-kix_mj183oblwdus-8{list-style-type:none}.lst-kix_681huy8tua4a-7>li:before{content:"\0025cb  "}.lst-kix_681huy8tua4a-8>li:before{content:"\0025a0  "}.lst-kix_681huy8tua4a-0>li:before{content:"\0025cf  "}.lst-kix_681huy8tua4a-1>li:before{content:"\0025cb  "}.lst-kix_681huy8tua4a-3>li:before{content:"\0025cf  "}.lst-kix_681huy8tua4a-4>li:before{content:"\0025cb  "}.lst-kix_681huy8tua4a-2>li:before{content:"\0025a0  "}.lst-kix_681huy8tua4a-6>li:before{content:"\0025cf  "}.lst-kix_mj183oblwdus-0>li:before{content:"\0025cf  "}.lst-kix_681huy8tua4a-5>li:before{content:"\0025a0  "}.lst-kix_mj183oblwdus-4>li:before{content:"\0025cb  "}ul.lst-kix_681huy8tua4a-0{list-style-type:none}ul.lst-kix_681huy8tua4a-1{list-style-type:none}ul.lst-kix_681huy8tua4a-2{list-style-type:none}.lst-kix_pbtjvvw2nq94-2>li:before{content:"\0025a0  "}.lst-kix_pbtjvvw2nq94-4>li:before{content:"\0025cb  "}ul.lst-kix_681huy8tua4a-3{list-style-type:none}.lst-kix_mj183oblwdus-2>li:before{content:"\0025a0  "}.lst-kix_mj183oblwdus-6>li:before{content:"\0025cf  "}ul.lst-kix_681huy8tua4a-4{list-style-type:none}ul.lst-kix_681huy8tua4a-5{list-style-type:none}.lst-kix_mj183oblwdus-1>li:before{content:"\0025cb  "}.lst-kix_mj183oblwdus-5>li:before{content:"\0025a0  "}ul.lst-kix_681huy8tua4a-6{list-style-type:none}.lst-kix_pbtjvvw2nq94-3>li:before{content:"\0025cf  "}.lst-kix_pbtjvvw2nq94-7>li:before{content:"\0025cb  "}ul.lst-kix_681huy8tua4a-7{list-style-type:none}ul.lst-kix_681huy8tua4a-8{list-style-type:none}.lst-kix_pbtjvvw2nq94-6>li:before{content:"\0025cf  "}.lst-kix_mj183oblwdus-3>li:before{content:"\0025cf  "}.lst-kix_pbtjvvw2nq94-5>li:before{content:"\0025a0  "}ul.lst-kix_pbtjvvw2nq94-2{list-style-type:none}ul.lst-kix_pbtjvvw2nq94-3{list-style-type:none}ul.lst-kix_pbtjvvw2nq94-0{list-style-type:none}ul.lst-kix_pbtjvvw2nq94-1{list-style-type:none}ul.lst-kix_pbtjvvw2nq94-6{list-style-type:none}ul.lst-kix_pbtjvvw2nq94-7{list-style-type:none}ul.lst-kix_pbtjvvw2nq94-4{list-style-type:none}ul.lst-kix_pbtjvvw2nq94-5{list-style-type:none}.lst-kix_mj183oblwdus-8>li:before{content:"\0025a0  "}ul.lst-kix_pbtjvvw2nq94-8{list-style-type:none}.lst-kix_pbtjvvw2nq94-0>li:before{content:"\0025cf  "}.lst-kix_mj183oblwdus-7>li:before{content:"\0025cb  "}.lst-kix_pbtjvvw2nq94-1>li:before{content:"\0025cb  "}ol{margin:0;padding:0}table td,table th{padding:0}.c6{background-color:#ffffff;padding-top:0pt;padding-bottom:0pt;line-height:1.125;orphans:2;widows:2;text-align:left;margin-right:113pt}.c9{padding-top:18pt;padding-bottom:6pt;line-height:1.15;page-break-after:avoid;orphans:2;widows:2;text-align:left}.c1{color:#000000;font-weight:400;text-decoration:none;vertical-align:baseline;font-size:16pt;font-family:"Arial";font-style:normal}.c2{color:#000000;font-weight:400;text-decoration:none;vertical-align:baseline;font-size:11pt;font-family:"Arial";font-style:normal}.c8{color:#000000;font-weight:400;text-decoration:none;vertical-align:baseline;font-size:20pt;font-family:"Arial";font-style:normal}.c11{color:#434343;font-weight:400;text-decoration:none;vertical-align:baseline;font-size:14pt;font-family:"Arial";font-style:normal}.c7{padding-top:20pt;padding-bottom:6pt;line-height:1.15;page-break-after:avoid;orphans:2;widows:2;text-align:left}.c13{padding-top:16pt;padding-bottom:4pt;line-height:1.15;page-break-after:avoid;orphans:2;widows:2;text-align:left}.c10{color:#000000;font-weight:400;text-decoration:none;vertical-align:baseline;font-size:14pt;font-family:"Arial";font-style:normal}.c0{padding-top:0pt;padding-bottom:0pt;line-height:1.15;orphans:2;widows:2;text-align:left}.c4{text-decoration-skip-ink:none;-webkit-text-decoration-skip:none;color:#1155cc;text-decoration:underline}.c12{background-color:#ffffff;max-width:468pt;padding:72pt 72pt 72pt 72pt}.c5{color:inherit;text-decoration:inherit}.c3{height:11pt}.c14{font-weight:700}.title{padding-top:0pt;color:#000000;font-size:26pt;padding-bottom:3pt;font-family:"Arial";line-height:1.15;page-break-after:avoid;orphans:2;widows:2;text-align:left}.subtitle{padding-top:0pt;color:#666666;font-size:15pt;padding-bottom:16pt;font-family:"Arial";line-height:1.15;page-break-after:avoid;orphans:2;widows:2;text-align:left}li{color:#000000;font-size:11pt;font-family:"Arial"}p{margin:0;color:#000000;font-size:11pt;font-family:"Arial"}h1{padding-top:20pt;color:#000000;font-size:20pt;padding-bottom:6pt;font-family:"Arial";line-height:1.15;page-break-after:avoid;orphans:2;widows:2;text-align:left}h2{padding-top:18pt;color:#000000;font-size:16pt;padding-bottom:6pt;font-family:"Arial";line-height:1.15;page-break-after:avoid;orphans:2;widows:2;text-align:left}h3{padding-top:16pt;color:#434343;font-size:14pt;padding-bottom:4pt;font-family:"Arial";line-height:1.15;page-break-after:avoid;orphans:2;widows:2;text-align:left}h4{padding-top:14pt;color:#666666;font-size:12pt;padding-bottom:4pt;font-family:"Arial";line-height:1.15;page-break-after:avoid;orphans:2;widows:2;text-align:left}h5{padding-top:12pt;color:#666666;font-size:11pt;padding-bottom:4pt;font-family:"Arial";line-height:1.15;page-break-after:avoid;orphans:2;widows:2;text-align:left}h6{padding-top:12pt;color:#666666;font-size:11pt;padding-bottom:4pt;font-family:"Arial";line-height:1.15;page-break-after:avoid;font-style:italic;orphans:2;widows:2;text-align:left}</style><div class="c12"><h2 class="c9" id="h.7si805isxz0v"><span class="c1">People</span></h2><h3 class="c13" id="h.nbi38km3hpid"><span class="c11">Participants</span></h3><p class="c0"><span class="c2">Benjamin De Kosnik, Steven Bougon, Tim Dresser, Nicolás Peña, Thomas Kelly, Gilles Dubuc, Todd Reifsteck, Ryosuke Niwa, Will Hawkins, Philippe Le Hegaret</span></p><h3 class="c13" id="h.x527yeqws7vw"><span class="c11">Chair</span></h3><p class="c0"><span class="c2">Yoav Weiss</span></p><h3 class="c13" id="h.p4gtg54nllux"><span class="c11">Scribe</span></h3><p class="c0"><span class="c2">Todd Reifsteck</span></p><p class="c0 c3"><span class="c2"></span></p><h2 class="c9" id="h.35e42drq40ab"><span class="c1">Next call</span></h2><p class="c0"><span class="c2">May 2nd, 10 am PST</span></p><p class="c0 c3"><span class="c2"></span></p><h1 class="c7" id="h.qpifv0rcpdj2"><span class="c8">Resource Timing</span></h1><h2 class="c6" id="h.7wu9d44rp5lz"><span class="c1">Specify TAO check for 304 responses</span></h2><p class="c0"><span class="c4"><a class="c5" href="https://www.google.com/url?q=https://github.com/w3c/resource-timing/issues/201&amp;sa=D&amp;source=editors&amp;ust=1613235767000000&amp;usg=AOvVaw2ZJE_fzIIZOLcOjsy2gETC">https://github.com/w3c/resource-timing/issues/201</a></span></p><p class="c0 c3"><span class="c2"></span></p><p class="c0"><span class="c2"><b>Yoav</b>: Discussed on last call and decided to align with CORS. Anne Van Kesteren said that RFC 7234 defined that cache TAO headers should if the 304 response does not have one.</span></p><p class="c0"><span class="c2"><b>Ryosuke</b>: What about the other 3XX Response headers?</span></p><p class="c0"><span class="c2"><b>Yoav</b>: They are different, as they are redirects.</span></p><p class="c0"><span class="c2"><b>Ryosuke</b>: Should we review all 3XX for proper behavior?</span></p><p class="c0"><span class="c2"><b>Yoav</b>: The spec doesn’t require updates for these as they don’t require special behavior. The PR change to fix this is just a note.</span></p><p class="c0"><span class="c2"><b>Ryosuke</b>: Does the redirection handling match fetch?</span></p><p class="c0"><span class="c2"><b>Yoav</b>: Not perfectly.. If CORS crosses origins then goes back to same-origin, it requires the same-origin domain to give access to itself. TAO does not yet have this. Discussed adding to L3.</span></p><p class="c0"><span class="c2"><b>Ryosuke</b>: Might be risky to keep it as is, sites may start to rely on current behavior.</span></p><p class="c0"><span class="c2"><b>Yoav</b>: It has been this way for awhile, and current implementations are not all compliant, so risk is low. I’d love L2 to reflect what’s implemented.</span></p><p class="c0"><span class="c2"><b>Rniwa</b>: If implementations need to align anyway, might as well go with the end goal spec.</span></p><p class="c0"><span class="c2"><b>Yoav</b>: That logic relies on Fetch integration, would be easier to do after integration happened.</span></p><p class="c0"><span class="c2"><b>Todd</b>: Seems like Ryosuke is saying this leaves a potential privacy leak in browsers if we don’t write this down in a spec.</span></p><p class="c0"><span class="c2"><b>Ryosuke</b>: Yes, also risky for compat if sites rely on this. And don’t want implementers to implement the incorrect version.</span></p><p class="c0"><span class="c2"><b>Nicolás</b>: Who hasn’t implemented?</span></p><p class="c0"><span class="c2"><b>Ryosuke</b>: Talking about bug fixes to current tests.</span></p><p class="c0"><span class="c2"><b>Yoav</b>: Safari/Firefox fail these tests. Chrome passes them. Doesn’t cause a privacy leak. This intent of making this update is to be consistent with CORS.</span></p><p class="c0"><span class="c2"><b>Todd</b>: Why is it specified if there’s no privacy risk?</span></p><p class="c0"><span class="c2"><b>Yoav</b>: The current definition does protect against privacy issues. The CORS-aligned behavior does not. There are no privacy risks I’m aware of that will be blocked by the origin opting-into itself in those cases.</span></p><p class="c0"><span class="c2"><b>Todd</b>: So we’re just doing that to align with CORS?</span></p><p class="c0"><span class="c2"><b>Yoav</b>: Yes. We want to be consistent, and want to be able to say TAO is a subset on CORS.</span></p><p class="c0"><span class="c2"><b>Ryosuke</b>: It is risky to leave in the current state. It would be ideal if the spec/tests are updates now.</span></p><p class="c0"><span class="c2"><b>Yoav</b>: What’s the risk.</span></p><p class="c0"><span class="c2"><b>Ryosuke</b>: Sites will rely on it and stop getting entries once we change. It’s better to be more restrictive sooner.</span></p><p class="c0"><span class="c2"><b>Nicolás</b>: How hard is it to add change to code/spec?</span></p><p class="c0"><span class="c2"><b>Yoav</b>: Will Safari and Firefox align?</span></p><p class="c0"><span class="c2"><b>Ryosuke</b>: Once we fix the tests, might as well fix to the right behavior</span></p><p class="c0"><span class="c2"><b>Todd</b>: If Chrome has the right behavior and Safari or Firefox intend to align, Is that enough to push to CR?</span></p><p class="c0"><span class="c2"><b>Philippe</b>: Yes. Maybe even PR, as this is an edge case.</span></p><p class="c0"><span class="c2"><b>Yoav</b>: Will, are you willing to update the TAO behavior to be CORS-like?</span></p><p class="c0"><span class="c2"><b>Will</b>: No immediate reason to push back, but need to review offline.</span></p><p class="c0"><span class="c2"><b>Yoav</b>: Seems reasonable. Also, found an earlier commit that specifies this. Will make the updates.</span></p><p class="c0"><span class="c14"><b>AI</b>: Yoav to update spec and tests.</span><span class="c2">&nbsp;</span></p><p class="c0 c3"><span class="c2"></span></p><h2 class="c6" id="h.z566s1pyq3c9"><span class="c1">Resource Timing and range requests</span></h2><p class="c0"><span class="c4"><a class="c5" href="https://www.google.com/url?q=https://github.com/w3c/resource-timing/issues/205&amp;sa=D&amp;source=editors&amp;ust=1613235767004000&amp;usg=AOvVaw0n_y0YNpWcZBb0_jbcnIFw">https://github.com/w3c/resource-timing/issues/205</a></span></p><p class="c0"><span><b>Yoav</b>: Image lazy loading are likely to trigger more of these. Proposal is to dupe it to issue </span><span class="c4"><a class="c5" href="https://www.google.com/url?q=https://github.com/w3c/resource-timing/issues/21&amp;sa=D&amp;source=editors&amp;ust=1613235767004000&amp;usg=AOvVaw2gSx4I2fzjX8l4BYptU8rn">https://github.com/w3c/resource-timing/issues/21</a></span><span class="c2">&nbsp;for multi-request fetches</span></p><p class="c0"><span class="c2"><b>Ryosuke</b>: agreed</span></p><p class="c0 c3"><span class="c2"></span></p><h2 class="c6" id="h.c2kjqzwxnmp5"><span class="c1">Add tests for not-same-site nested contexts</span></h2><p class="c0"><span class="c4"><a class="c5" href="https://www.google.com/url?q=https://github.com/w3c/resource-timing/issues/204&amp;sa=D&amp;source=editors&amp;ust=1613235767005000&amp;usg=AOvVaw0DXH7ni4eb-6Mr2RDbXfyN">https://github.com/w3c/resource-timing/issues/204</a></span></p><p class="c0"><span class="c2"><b>Yoav</b>: Nothing major to discuss. We need to add tests</span></p><p class="c0 c3"><span class="c2"></span></p><h2 class="c9" id="h.m34qyk9r4ulf"><span class="c1">Test Status</span></h2><p class="c0"><span class="c4"><a class="c5" href="https://www.google.com/url?q=https://github.com/w3c/resource-timing/issues/71&amp;sa=D&amp;source=editors&amp;ust=1613235767005000&amp;usg=AOvVaw0irvdQyGDyIFgrhPBvEUbA">https://github.com/w3c/resource-timing/issues/71</a></span></p><p class="c0"><span class="c2"><b>Yoav</b>: Firefox/Safari said they will review tests and give back bugs on blocking issues. Any progress?</span></p><p class="c0"><span class="c2"><b>Ryosuke</b>: No updates.</span></p><p class="c0"><span class="c2"><b>Will</b>: First time I’m seeing this list.</span></p><p class="c0"><span class="c2"><b>Nicolás</b>: Can we remove the ones that pass in two implementations?</span></p><p class="c0"><span class="c2"><b>Yoav</b>: This list already precludes those. Can we agree that the tests are testing the right things and open implementation issues?</span></p><p class="c0"><span class="c2"><b>Will</b>: Is the blocker for L2 the agreement on the tests, or the alignment of the implementation?</span></p><p class="c0"><span class="c2"><b>Yoav</b>: Agreement will enable to move to CR. Maybe PR as well. Philippe?</span></p><p class="c0"><span class="c2"><b>Philippe</b>: Depends if they are corner cases or not. Major bugs will need implementation fixes as well to move to PR.</span></p><p class="c0"><span class="c2"><b>Yoav</b>: So tests are potentially blocking moving beyond CR.</span></p><p class="c0"><span class="c2"><b>Will</b>: Is the agreement that the tests are testing what they are supposed to or that the product will be fixed?</span></p><p class="c0"><span class="c2"><b>Todd</b>: Just following up with regard to timing for Firefox/Apple.</span></p><p class="c0"><span class="c2"><b>Will</b>: Unsure on time commitment for test review. Maybe &gt; 4 weeks</span></p><p class="c0"><span class="c2"><b>Ryosuke</b>: Can’t commit any time due to other priorities (WebComponents F2F, then WWDC). Hope to work on this, but not sure when.</span></p><p class="c0 c3"><span class="c2"></span></p><h1 class="c7" id="h.hgjigjfdpz8a"><span class="c8">High Resolution Time</span></h1><h2 class="c6" id="h.kiogag9jo7c7"><span class="c1">can performance.now() timers be frozen for background tabs, etc?</span></h2><p class="c0"><span class="c4"><a class="c5" href="https://www.google.com/url?q=https://github.com/w3c/hr-time/issues/65&amp;sa=D&amp;source=editors&amp;ust=1613235767008000&amp;usg=AOvVaw00eT3eROR0du8qReF2Uvd3">https://github.com/w3c/hr-time/issues/65</a></span></p><p class="c0"><span class="c2"><b>Yoav</b>: Chrome is freezing performance.now() when tabs are backgrounded. Is this a Chrome bug? I believe it is</span></p><p class="c0"><span class="c2"><b>Ryosuke</b>: How does it work? Time is advancing slower?</span></p><p class="c0"><span class="c2"><b>Yoav</b>: Either incrementing slower or not at all</span></p><p class="c0"><span class="c2">Ryosuke:Sounds like a bug</span></p><p class="c0"><span class="c2"><b>Tim</b>: Devil’s advocate. If we don’t pause performance.now, it causes time between 2 separate performance.now to look like a very long period of time.</span></p><p class="c0"><span class="c2"><b>Yoav</b>: But it DID take a long time. The freeze or pageVisibility events are the best way to understand this.</span></p><p class="c0"><span class="c2"><b>Ryosuke</b>: Can we pause mid-function if it’s not async?</span></p><p class="c0"><span class="c2"><b>Tim</b>: Maybe if the computer is put to sleep. Not sure if this happens and in which cases.</span></p><p class="c0"><span class="c2"><b>Todd</b>: Edge took the position that performance.now should not be frozen as far back as Windows 8.</span></p><p class="c0"><span class="c2"><b>Ryosuke</b>: that’s what Safari does too.</span></p><p class="c0"><span class="c2"><b>Will</b>: Is there a test that Firefox could use to double-check their behavior?</span></p><p class="c0"><span class="c2"><b>Yoav</b>: No WPT, but there’s a JSFiddle attached to the issue that can help testing</span></p><p class="c0"><span class="c2"><b>Nicolás</b>: Does spec need to refer to sleeping PC to ensure performance.now doesn’t stop?</span></p><p class="c0"><span class="c2"><b>Yoav</b>: Probably a note.. And manual testing</span></p><p class="c0"><span class="c2"><b>Todd</b>: Useful for each browser to run the manual test to confirm sleep and background behavior</span></p><p class="c0 c3"><span class="c10"></span></p><h2 class="c6" id="h.1uecqctefh7p"><span class="c1">Gate Timestamps behind existing permission prompts</span></h2><p class="c0"><span class="c4"><a class="c5" href="https://www.google.com/url?q=https://github.com/w3c/hr-time/issues/64&amp;sa=D&amp;source=editors&amp;ust=1613235767009000&amp;usg=AOvVaw2RM0T8FoV7lViDKla-FbnE">https://github.com/w3c/hr-time/issues/64</a></span></p><p class="c0"><span class="c2"><b>Yoav</b>: *summarize the issue*</span></p><p class="c0"><span class="c2">Would like to close as this is a significant change to a widely used web standard, with no implementer support</span></p><p class="c0"><span class="c2"><b>Ryosuke</b>: Probably not the best way to approach this. So many other timers exist.</span></p><p class="c0"><span class="c2"><b>Yoav</b>: Many other mitigations that make an impact. COOP, CORP, CORB can help. Blocking coarse timers won’t help.</span></p><p class="c0"><span class="c2"><b>Todd</b>: This would be a hugely breaking change to the web today.</span></p><p class="c0"><span class="c2"><b>Ryosuke</b>: If we implemented, it would be to lock precision unless permissions. It turns out there are too many holes to plug this way.</span></p><p class="c0"><span class="c2"><b>Will</b>: Mind keeping the issue open to poll Firefox folks till Friday?</span></p><p class="c0"><span class="c2"><b>Yoav</b>: Sure</span></p><p class="c0 c3"><span class="c2"></span></p><h2 class="c6" id="h.d9u7ug804p2j"><span class="c1">Find better sources to quote than Wikipedia</span></h2><p class="c0"><span class="c4"><a class="c5" href="https://www.google.com/url?q=https://github.com/w3c/hr-time/issues/62&amp;sa=D&amp;source=editors&amp;ust=1613235767011000&amp;usg=AOvVaw2pnB3gVUzQn-0TP-iJyAT-">https://github.com/w3c/hr-time/issues/62</a></span></p><p class="c0"><span class="c2"><b>Yoav</b>: Moving the strict time to ECMA reference. Needs a review of the PR</span></p><h2 class="c9" id="h.926wtsk9f0og"><span class="c1">Can HR-Time be moved forward?</span></h2><p class="c0"><span class="c2"><b>Yoav</b>: Can we move this to PR?</span></p><p class="c0"><span class="c2"><b>Phillipe</b>: We should close the privacy issues, give them a week to see if they push back, and then move forward.</span></p><p class="c0"><span class="c2"><b>Yoav</b>: Any objections?</span></p><p class="c0"><span class="c2">(Silence…)</span></p><p class="c0"><span class="c2"><b>Todd</b>: Sounds great!</span></p><p class="c0 c3"><span class="c2"></span></p><h1 class="c7" id="h.q2bh97qyus3c"><span class="c8">Performance-Timeline</span></h1><h2 class="c9" id="h.5ozuulqavd5t"><span class="c4"><a class="c5" href="https://www.google.com/url?q=https://github.com/w3c/performance-timeline/issues/124&amp;sa=D&amp;source=editors&amp;ust=1613235767013000&amp;usg=AOvVaw3oqIJYClqBUP_rottUS0_E">Republish L2 based on the latest "level2" branch</a></span></h2><p class="c0"><span class="c2"><b>Yoav</b>: Can we republish the level2 branch as L2?</span></p><p class="c0"><span class="c2"><b>Philippe</b>: Can do that today!</span></p><p class="c0"><span class="c2"><b>Yoav</b>: Awesome!</span></p><p class="c0"><span class="c2"><b>Yoav</b>: Also, all issues and tests seem to be green.</span></p><p class="c0 c3"><span class="c2"></span></p><h1 class="c7" id="h.25kn4c38iy5a"><span class="c8">Navigation Timing</span></h1><h2 class="c6" id="h.fghjpkevarti"><span class="c1">"timing allow check" is not well defined in the context of NavTiming</span></h2><p class="c0"><span class="c4"><a class="c5" href="https://www.google.com/url?q=https://github.com/w3c/navigation-timing/issues/104&amp;sa=D&amp;source=editors&amp;ust=1613235767014000&amp;usg=AOvVaw0Y90xHfePQQwWwNulNfaAw">https://github.com/w3c/navigation-timing/issues/104</a></span></p><p class="c0"><span class="c2"><b>Yoav</b>: Issue comment needs a review. The role of TAO for navigations seems a bit inverse, as we need to protect the previous document or redirects from the current document. This is not well defined currently.</span></p><p class="c0"><span class="c2"><b>Todd</b>: Review by who?</span></p><p class="c0"><span class="c2"><b>Yoav</b>: Todd/Anne/Ryosuke</span></p><p class="c0"><span class="c2"><b>Ryosuke</b>: document can be created by script, and have no resource.</span></p><p class="c0"><span class="c2"><b>Yoav</b>: In those cases, there’s also no previous document and no redirects. So we can just check for those cases.</span></p><p class="c0"><span class="c2"><b>Ryosuke</b>: and treat them like TAO wasn’t provided</span></p><p class="c0"><span class="c2"><b>Yoav</b>: Yes. And when there is a previous document, we need that document to opt-in to current origin. Same for redirects.</span></p><p class="c0"><span class="c2"><b>Ryosuke</b>: Opting-in to the destination origin makes sense.</span></p><p class="c0"><span class="c2">&lt;out of time&gt;</span></p><p class="c0 c3"><span class="c2"></span></p><p class="c0 c3"><span class="c2"></span></p><p class="c0 c3"><span class="c2"></span></p></div></div><div id="footer"><span>Published by <a target="_blank" title="Learn more about Google Drive" href="https://docs.google.com/">Google Drive</a></span><span class="dash">–</span><a href="https://docs.google.com/u/0/abuse?id=AKkXjowBAl8lJ6ZjzxjIVdOFzqBzWYnbX4aYqGUWdAd2n1z8ZIdQmgcZVROnS-AwKKU4Cj64jnakDPZOYuNLnqA:0">Report Abuse</a></div><script type="text/javascript" nonce="">(function(){/*

 Copyright The Closure Library Authors.
 SPDX-License-Identifier: Apache-2.0
*/
var aa="function"==typeof Object.defineProperties?Object.defineProperty:function(a,b,c){if(a==Array.prototype||a==Object.prototype)return a;a[b]=c.value;return a};function ba(a){a=["object"==typeof globalThis&&globalThis,a,"object"==typeof window&&window,"object"==typeof self&&self,"object"==typeof global&&global];for(var b=0;b<a.length;++b){var c=a[b];if(c&&c.Math==Math)return c}throw Error("Cannot find global object");}var ca=ba(this);
function da(a,b){if(b)a:{var c=ca;a=a.split(".");for(var d=0;d<a.length-1;d++){var e=a[d];if(!(e in c))break a;c=c[e]}a=a[a.length-1];d=c[a];b=b(d);b!=d&&null!=b&&aa(c,a,{configurable:!0,writable:!0,value:b})}}var ea="function"==typeof Object.create?Object.create:function(a){function b(){}b.prototype=a;return new b},fa;
if("function"==typeof Object.setPrototypeOf)fa=Object.setPrototypeOf;else{var ha;a:{var ia={a:!0},ja={};try{ja.__proto__=ia;ha=ja.a;break a}catch(a){}ha=!1}fa=ha?function(a,b){a.__proto__=b;if(a.__proto__!==b)throw new TypeError(a+" is not extensible");return a}:null}var ka=fa;
function h(a,b){a.prototype=ea(b.prototype);a.prototype.constructor=a;if(ka)ka(a,b);else for(var c in b)if("prototype"!=c)if(Object.defineProperties){var d=Object.getOwnPropertyDescriptor(b,c);d&&Object.defineProperty(a,c,d)}else a[c]=b[c];a.o=b.prototype}da("Object.is",function(a){return a?a:function(b,c){return b===c?0!==b||1/b===1/c:b!==b&&c!==c}});var l=this||self;function la(){}function ma(a){var b=typeof a;return"object"==b&&null!=a||"function"==b}
function na(a,b){var c=Array.prototype.slice.call(arguments,1);return function(){var d=c.slice();d.push.apply(d,arguments);return a.apply(this,d)}}function oa(a,b){function c(){}c.prototype=b.prototype;a.o=b.prototype;a.prototype=new c;a.prototype.constructor=a;a.B=function(d,e,f){for(var g=Array(arguments.length-2),k=2;k<arguments.length;k++)g[k-2]=arguments[k];return b.prototype[e].apply(d,g)}}function pa(a){return a};var qa=Array.prototype.indexOf?function(a,b){return Array.prototype.indexOf.call(a,b,void 0)}:function(a,b){if("string"===typeof a)return"string"!==typeof b||1!=b.length?-1:a.indexOf(b,0);for(var c=0;c<a.length;c++)if(c in a&&a[c]===b)return c;return-1};function ra(a,b,c){for(var d in a)b.call(c,a[d],d,a)};var m;function p(a,b){this.i=a===sa&&b||"";this.j=ta}p.prototype.h=!0;p.prototype.g=function(){return this.i};var ta={},sa={};var ua=String.prototype.trim?function(a){return a.trim()}:function(a){return/^[\s\xa0]*([\s\S]*?)[\s\xa0]*$/.exec(a)[1]},va=/&/g,wa=/</g,xa=/>/g,ya=/"/g,za=/'/g,Aa=/\x00/g,Ba=/[\x00&<>"']/;function Ca(a,b){return a<b?-1:a>b?1:0};function q(a,b){this.i=b===r?a:""}q.prototype.h=!0;q.prototype.g=function(){return this.i.toString()};q.prototype.toString=function(){return this.i.toString()};function u(a){return a instanceof q&&a.constructor===q?a.i:"type_error:SafeUrl"}
var Da=/^(?:audio\/(?:3gpp2|3gpp|aac|L16|midi|mp3|mp4|mpeg|oga|ogg|opus|x-m4a|x-matroska|x-wav|wav|webm)|font\/\w+|image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp|x-icon)|video\/(?:mpeg|mp4|ogg|webm|quicktime|x-matroska))(?:;\w+=(?:\w+|"[\w;,= ]+"))*$/i,Ea=/^data:(.*);base64,[a-z0-9+\/]+=*$/i,Fa=/^(?:(?:https?|mailto|ftp):|[^:/?#]*(?:[/?#]|$))/i;function Ga(a){if(a instanceof q)return a;a="object"==typeof a&&a.h?a.g():String(a);Fa.test(a)||(a="about:invalid#zClosurez");return new q(a,r)}
var r={},Ha=new q("about:invalid#zClosurez",r);var v;a:{var Ia=l.navigator;if(Ia){var Ja=Ia.userAgent;if(Ja){v=Ja;break a}}v=""}function w(a){return-1!=v.indexOf(a)};function x(a,b,c){this.i=c===Ka?a:""}x.prototype.h=!0;x.prototype.g=function(){return this.i.toString()};x.prototype.toString=function(){return this.i.toString()};var Ka={};function La(a,b,c,d){a=a instanceof q?a:Ga(a);b=b||l;c=c instanceof p?c instanceof p&&c.constructor===p&&c.j===ta?c.i:"type_error:Const":c||"";return void 0!==d?b.open(u(a),c,d,void 0):b.open(u(a),c)};function Ma(a){Ma[" "](a);return a}Ma[" "]=la;function y(a,b,c){return Object.prototype.hasOwnProperty.call(a,b)?a[b]:a[b]=c(b)};var Na=w("Opera"),z=w("Trident")||w("MSIE"),Oa=w("Edge"),Pa=Oa||z,Qa=w("Gecko")&&!(-1!=v.toLowerCase().indexOf("webkit")&&!w("Edge"))&&!(w("Trident")||w("MSIE"))&&!w("Edge"),Ra=-1!=v.toLowerCase().indexOf("webkit")&&!w("Edge"),Sa=w("Macintosh");function Ta(){var a=l.document;return a?a.documentMode:void 0}var Ua;
a:{var Va="",Wa=function(){var a=v;if(Qa)return/rv:([^\);]+)(\)|;)/.exec(a);if(Oa)return/Edge\/([\d\.]+)/.exec(a);if(z)return/\b(?:MSIE|rv)[: ]([^\);]+)(\)|;)/.exec(a);if(Ra)return/WebKit\/(\S+)/.exec(a);if(Na)return/(?:Version)[ \/]?(\S+)/.exec(a)}();Wa&&(Va=Wa?Wa[1]:"");if(z){var Xa=Ta();if(null!=Xa&&Xa>parseFloat(Va)){Ua=String(Xa);break a}}Ua=Va}var Ya=Ua,Za={},$a;if(l.document&&z){var ab=Ta();$a=ab?ab:parseInt(Ya,10)||void 0}else $a=void 0;var bb=$a;function cb(a){return y(a.prototype,"$$generatedClassName",function(){return"Class$obf_"+{valueOf:function(){return++db}}})}var db=1E3;function A(){}A.prototype.u=function(){return this.j||(Object.defineProperties(this,{j:{value:++eb,enumerable:!1}}),this.j)};A.prototype.toString=function(){var a=B(fb(gb(this.constructor)))+"@";var b=(this.u()>>>0).toString(16);return a+B(b)};function D(){}h(D,A);D.prototype.i=function(a){this.h=a;if(a instanceof Object)try{a.A=this}catch(b){}};function hb(a){a.h instanceof Error&&(Error.captureStackTrace?Error.captureStackTrace(a.h):a.h.stack=Error().stack)}D.prototype.toString=function(){var a=fb(gb(this.constructor)),b=this.l;return null==b?a:B(a)+": "+B(b)};function ib(){}h(ib,D);function jb(){}h(jb,ib);var eb=0;function E(){}h(E,jb);E.prototype.i=function(a){jb.prototype.i.call(this,Object.is(this.g,"__noinit__")?a:this.g)};function kb(){}h(kb,E);function lb(a,b){return"string"==typeof a?a.charCodeAt(b):a.g(b)};function B(a){return null==a?"null":a.toString()}function mb(a){return 65536<=a?B(String.fromCharCode((55296+((a-65536|0)>>10&1023)|0)&65535))+B(String.fromCharCode((56320+((a-65536|0)&1023)|0)&65535)):String.fromCharCode(a&65535)}function nb(a,b){var c=b,d=a.length,e;b=lb(a,(e=c,c=c+1|0,e));var f;if(e=55296<=b&&56319>=b&&c<d)a=f=lb(a,c),e=56320<=a&&57343>=a;var g;e?g=65536+((b&1023)<<10)+(f&1023)|0:g=b;return g};function ob(a,b){this.h=a;this.g=b}h(ob,A);function fb(a){var b=cb(a.h);0!=a.g&&(b="L"+B(b)+";");a=a.g;for(var c="",d=0;d<a;d=d+1|0)c=B(c)+"[";return B(c)+B(b)}ob.prototype.toString=function(){return"class "+B(fb(this))};function gb(a){var b=0;return y(a.prototype,"$$class/"+b,function(){return new ob(a,b)})};function pb(a,b){return null==a?a:b?decodeURI(a):decodeURIComponent(a)};var qb=/^(?:([^:/?#.]+):)?(?:\/\/(?:([^/?#]*)@)?([^/#?]*?)(?::([0-9]+))?(?=[/#?]|$))?([^?#]+)?(?:\?([^#]*))?(?:#([\S\s]*))?$/;function rb(a){a=qb.exec(a);for(var b=[],c=0;7>=c;c=c+1|0)a.length<=c||null==a[c]?b.push(null):b.push(a[c]);return b}
function sb(a,b){var c=a.indexOf(mb(35));c=0>c?a.length:c;a:{var d=0;for(var e=b.length;0<(d=a.indexOf(b,d))&&d<c;){var f=nb(a,d-1|0);if(38==f||63==f){if((d+e|0)>=a.length)break a;f=nb(a,d+e|0);if(61==f||38==f||35==f)break a}d=d+(e+1)|0}d=-1}if(0>d)return null;e=a.indexOf(mb(38),d);if(0>e||e>c)e=c;d=d+(b.length+1)|0;b=Math.min(a.length,d);a=a.substr(b,Math.min(a.length,Math.max(d,e))-b|0);c=" ";for(b=0;0<=(b=c.indexOf("\\",b));)36==c.charCodeAt(b+1|0)?(d=B(c.substr(0,b|0))+"$",e=b=b+1|0,c=d+B(c.substr(e))):
(d=B(c.substr(0,b|0)),e=b=b+1|0,c=d+B(c.substr(e)));a=a.replace(/\+/g,c);return pb(a,!1)};function F(a,b){this.h=b;for(var c=[],d=!0,e=a.length-1;0<=e;e--){var f=a[e]|0;d&&f==b||(c[e]=f,d=!1)}this.g=c}var tb={};function ub(a){return-128<=a&&128>a?y(tb,a,function(b){return new F([b|0],0>b?-1:0)}):new F([a|0],0>a?-1:0)}function G(a){if(isNaN(a)||!isFinite(a))return H;if(0>a)return I(G(-a));for(var b=[],c=1,d=0;a>=c;d++)b[d]=a/c|0,c*=4294967296;return new F(b,0)}var H=ub(0),J=ub(1),vb=ub(16777216);
function K(a){if(-1==a.h)return-K(I(a));for(var b=0,c=1,d=0;d<a.g.length;d++){var e=L(a,d);b+=(0<=e?e:4294967296+e)*c;c*=4294967296}return b}F.prototype.toString=function(a){a=a||10;if(2>a||36<a)throw Error("radix out of range: "+a);if(M(this))return"0";if(-1==this.h)return"-"+I(this).toString(a);for(var b=G(Math.pow(a,6)),c=this,d="";;){var e=wb(c,b).g;c=N(c,O(e,b));var f=((0<c.g.length?c.g[0]:c.h)>>>0).toString(a);c=e;if(M(c))return f+d;for(;6>f.length;)f="0"+f;d=f+d}};
function L(a,b){return 0>b?0:b<a.g.length?a.g[b]:a.h}function M(a){if(0!=a.h)return!1;for(var b=0;b<a.g.length;b++)if(0!=a.g[b])return!1;return!0}function P(a,b){a=N(a,b);return-1==a.h?-1:M(a)?0:1}function I(a){for(var b=a.g.length,c=[],d=0;d<b;d++)c[d]=~a.g[d];return(new F(c,~a.h)).add(J)}F.prototype.abs=function(){return-1==this.h?I(this):this};
F.prototype.add=function(a){for(var b=Math.max(this.g.length,a.g.length),c=[],d=0,e=0;e<=b;e++){var f=d+(L(this,e)&65535)+(L(a,e)&65535),g=(f>>>16)+(L(this,e)>>>16)+(L(a,e)>>>16);d=g>>>16;f&=65535;g&=65535;c[e]=g<<16|f}return new F(c,c[c.length-1]&-2147483648?-1:0)};function N(a,b){return a.add(I(b))}
function O(a,b){if(M(a)||M(b))return H;if(-1==a.h)return-1==b.h?O(I(a),I(b)):I(O(I(a),b));if(-1==b.h)return I(O(a,I(b)));if(0>P(a,vb)&&0>P(b,vb))return G(K(a)*K(b));for(var c=a.g.length+b.g.length,d=[],e=0;e<2*c;e++)d[e]=0;for(e=0;e<a.g.length;e++)for(var f=0;f<b.g.length;f++){var g=L(a,e)>>>16,k=L(a,e)&65535,t=L(b,f)>>>16,n=L(b,f)&65535;d[2*e+2*f]+=k*n;Q(d,2*e+2*f);d[2*e+2*f+1]+=g*n;Q(d,2*e+2*f+1);d[2*e+2*f+1]+=k*t;Q(d,2*e+2*f+1);d[2*e+2*f+2]+=g*t;Q(d,2*e+2*f+2)}for(e=0;e<c;e++)d[e]=d[2*e+1]<<16|
d[2*e];for(e=c;e<2*c;e++)d[e]=0;return new F(d,0)}function Q(a,b){for(;(a[b]&65535)!=a[b];)a[b+1]+=a[b]>>>16,a[b]&=65535,b++}function S(a,b){this.g=a;this.h=b}
function wb(a,b){if(M(b))throw Error("division by zero");if(M(a))return new S(H,H);if(-1==a.h)return b=wb(I(a),b),new S(I(b.g),I(b.h));if(-1==b.h)return b=wb(a,I(b)),new S(I(b.g),b.h);if(30<a.g.length){if(-1==a.h||-1==b.h)throw Error("slowDivide_ only works with positive integers.");for(var c=J,d=b;0>=P(d,a);)c=xb(c,1),d=xb(d,1);var e=T(c,1),f=T(d,1);d=T(d,2);for(c=T(c,2);!M(d);){var g=f.add(d);0>=P(g,a)&&(e=e.add(c),f=g);d=T(d,1);c=T(c,1)}b=N(a,O(e,b));return new S(e,b)}for(e=H;0<=P(a,b);){c=Math.max(1,
Math.floor(K(a)/K(b)));d=Math.ceil(Math.log(c)/Math.LN2);d=48>=d?1:Math.pow(2,d-48);f=G(c);for(g=O(f,b);-1==g.h||0<P(g,a);)c-=d,f=G(c),g=O(f,b);M(f)&&(f=J);e=e.add(f);a=N(a,g)}return new S(e,a)}F.prototype.and=function(a){for(var b=Math.max(this.g.length,a.g.length),c=[],d=0;d<b;d++)c[d]=L(this,d)&L(a,d);return new F(c,this.h&a.h)};F.prototype.or=function(a){for(var b=Math.max(this.g.length,a.g.length),c=[],d=0;d<b;d++)c[d]=L(this,d)|L(a,d);return new F(c,this.h|a.h)};
F.prototype.xor=function(a){for(var b=Math.max(this.g.length,a.g.length),c=[],d=0;d<b;d++)c[d]=L(this,d)^L(a,d);return new F(c,this.h^a.h)};function xb(a,b){var c=b>>5;b%=32;for(var d=a.g.length+c+(0<b?1:0),e=[],f=0;f<d;f++)e[f]=0<b?L(a,f-c)<<b|L(a,f-c-1)>>>32-b:L(a,f-c);return new F(e,a.h)}function T(a,b){var c=b>>5;b%=32;for(var d=a.g.length-c,e=[],f=0;f<d;f++)e[f]=0<b?L(a,f+c)>>>b|L(a,f+c+1)<<32-b:L(a,f+c);return new F(e,a.h)};N(xb(J,32),J);N(xb(J,128),J);function yb(a){a&&"function"==typeof a.v&&a.v()};function U(){this.h=this.h;this.g=this.g}U.prototype.h=!1;U.prototype.v=function(){this.h||(this.h=!0,this.j())};U.prototype.j=function(){if(this.g)for(;this.g.length;)this.g.shift()()};var zb=!z||9<=Number(bb),Ab=!z||9<=Number(bb),Bb=z&&!y(Za,"9",function(){for(var a=0,b=ua(String(Ya)).split("."),c=ua("9").split("."),d=Math.max(b.length,c.length),e=0;0==a&&e<d;e++){var f=b[e]||"",g=c[e]||"";do{f=/(\d*)(\D*)(.*)/.exec(f)||["","","",""];g=/(\d*)(\D*)(.*)/.exec(g)||["","","",""];if(0==f[0].length&&0==g[0].length)break;a=Ca(0==f[1].length?0:parseInt(f[1],10),0==g[1].length?0:parseInt(g[1],10))||Ca(0==f[2].length,0==g[2].length)||Ca(f[2],g[2]);f=f[3];g=g[3]}while(0==a)}return 0<=a}),
Cb=function(){if(!l.addEventListener||!Object.defineProperty)return!1;var a=!1,b=Object.defineProperty({},"passive",{get:function(){a=!0}});try{l.addEventListener("test",la,b),l.removeEventListener("test",la,b)}catch(c){}return a}();function Db(a,b){this.type=a;this.g=this.target=b;this.defaultPrevented=!1}Db.prototype.h=function(){this.defaultPrevented=!0};function V(a,b){Db.call(this,a?a.type:"");this.relatedTarget=this.g=this.target=null;this.button=this.screenY=this.screenX=this.clientY=this.clientX=0;this.key="";this.metaKey=this.shiftKey=this.altKey=this.ctrlKey=!1;this.state=null;this.pointerId=0;this.pointerType="";this.i=null;if(a){var c=this.type=a.type,d=a.changedTouches&&a.changedTouches.length?a.changedTouches[0]:null;this.target=a.target||a.srcElement;this.g=b;if(b=a.relatedTarget){if(Qa){a:{try{Ma(b.nodeName);var e=!0;break a}catch(f){}e=
!1}e||(b=null)}}else"mouseover"==c?b=a.fromElement:"mouseout"==c&&(b=a.toElement);this.relatedTarget=b;d?(this.clientX=void 0!==d.clientX?d.clientX:d.pageX,this.clientY=void 0!==d.clientY?d.clientY:d.pageY,this.screenX=d.screenX||0,this.screenY=d.screenY||0):(this.clientX=void 0!==a.clientX?a.clientX:a.pageX,this.clientY=void 0!==a.clientY?a.clientY:a.pageY,this.screenX=a.screenX||0,this.screenY=a.screenY||0);this.button=a.button;this.key=a.key||"";this.ctrlKey=a.ctrlKey;this.altKey=a.altKey;this.shiftKey=
a.shiftKey;this.metaKey=a.metaKey;this.pointerId=a.pointerId||0;this.pointerType="string"===typeof a.pointerType?a.pointerType:Eb[a.pointerType]||"";this.state=a.state;this.i=a;a.defaultPrevented&&V.o.h.call(this)}}oa(V,Db);var Fb=[1,4,2],Eb={2:"touch",3:"pen",4:"mouse"};V.prototype.h=function(){V.o.h.call(this);var a=this.i;if(a.preventDefault)a.preventDefault();else if(a.returnValue=!1,Bb)try{if(a.ctrlKey||112<=a.keyCode&&123>=a.keyCode)a.keyCode=-1}catch(b){}};var Gb="closure_listenable_"+(1E6*Math.random()|0);var Hb=0;function Ib(a,b,c,d,e){this.listener=a;this.g=null;this.src=b;this.type=c;this.capture=!!d;this.h=e;this.key=++Hb;this.m=this.s=!1}function Jb(a){a.m=!0;a.listener=null;a.g=null;a.src=null;a.h=null};function Kb(a){this.src=a;this.g={};this.h=0}Kb.prototype.add=function(a,b,c,d,e){var f=a.toString();a=this.g[f];a||(a=this.g[f]=[],this.h++);var g;a:{for(g=0;g<a.length;++g){var k=a[g];if(!k.m&&k.listener==b&&k.capture==!!d&&k.h==e)break a}g=-1}-1<g?(b=a[g],c||(b.s=!1)):(b=new Ib(b,this.src,f,!!d,e),b.s=c,a.push(b));return b};function Lb(a,b){var c=b.type;if(c in a.g){var d=a.g[c],e=qa(d,b),f;(f=0<=e)&&Array.prototype.splice.call(d,e,1);f&&(Jb(b),0==a.g[c].length&&(delete a.g[c],a.h--))}};var Mb="closure_lm_"+(1E6*Math.random()|0),Nb={},Ob=0;function Pb(a,b,c,d,e){if(d&&d.once)return Qb(a,b,c,d,e);if(Array.isArray(b)){for(var f=0;f<b.length;f++)Pb(a,b[f],c,d,e);return null}c=Rb(c);return a&&a[Gb]?a.g.add(String(b),c,!1,ma(d)?!!d.capture:!!d,e):Sb(a,b,c,!1,d,e)}
function Sb(a,b,c,d,e,f){if(!b)throw Error("Invalid event type");var g=ma(e)?!!e.capture:!!e,k=Tb(a);k||(a[Mb]=k=new Kb(a));c=k.add(b,c,d,g,f);if(c.g)return c;d=Ub();c.g=d;d.src=a;d.listener=c;if(a.addEventListener)Cb||(e=g),void 0===e&&(e=!1),a.addEventListener(b.toString(),d,e);else if(a.attachEvent)a.attachEvent(Vb(b.toString()),d);else if(a.addListener&&a.removeListener)a.addListener(d);else throw Error("addEventListener and attachEvent are unavailable.");Ob++;return c}
function Ub(){var a=Wb,b=Ab?function(c){return a.call(b.src,b.listener,c)}:function(c){c=a.call(b.src,b.listener,c);if(!c)return c};return b}function Qb(a,b,c,d,e){if(Array.isArray(b)){for(var f=0;f<b.length;f++)Qb(a,b[f],c,d,e);return null}c=Rb(c);return a&&a[Gb]?a.g.add(String(b),c,!0,ma(d)?!!d.capture:!!d,e):Sb(a,b,c,!0,d,e)}
function Xb(a){if("number"!==typeof a&&a&&!a.m){var b=a.src;if(b&&b[Gb])Lb(b.g,a);else{var c=a.type,d=a.g;b.removeEventListener?b.removeEventListener(c,d,a.capture):b.detachEvent?b.detachEvent(Vb(c),d):b.addListener&&b.removeListener&&b.removeListener(d);Ob--;(c=Tb(b))?(Lb(c,a),0==c.h&&(c.src=null,b[Mb]=null)):Jb(a)}}}function Vb(a){return a in Nb?Nb[a]:Nb[a]="on"+a}
function Yb(a,b,c,d){var e=!0;if(a=Tb(a))if(b=a.g[b.toString()])for(b=b.concat(),a=0;a<b.length;a++){var f=b[a];f&&f.capture==c&&!f.m&&(f=Zb(f,d),e=e&&!1!==f)}return e}function Zb(a,b){var c=a.listener,d=a.h||a.src;a.s&&Xb(a);return c.call(d,b)}
function Wb(a,b){if(a.m)return!0;if(!Ab){if(!b)a:{b=["window","event"];for(var c=l,d=0;d<b.length;d++)if(c=c[b[d]],null==c){b=null;break a}b=c}d=b;b=new V(d,this);c=!0;if(!(0>d.keyCode||void 0!=d.returnValue)){a:{var e=!1;if(0==d.keyCode)try{d.keyCode=-1;break a}catch(g){e=!0}if(e||void 0==d.returnValue)d.returnValue=!0}d=[];for(e=b.g;e;e=e.parentNode)d.push(e);a=a.type;for(e=d.length-1;0<=e;e--){b.g=d[e];var f=Yb(d[e],a,!0,b);c=c&&f}for(e=0;e<d.length;e++)b.g=d[e],f=Yb(d[e],a,!1,b),c=c&&f}return c}return Zb(a,
new V(b,this))}function Tb(a){a=a[Mb];return a instanceof Kb?a:null}var $b="__closure_events_fn_"+(1E9*Math.random()>>>0);function Rb(a){if("function"===typeof a)return a;a[$b]||(a[$b]=function(b){return a.handleEvent(b)});return a[$b]};function W(a){U.call(this);this.l=a;this.i={}}oa(W,U);var ac=[];function bc(a){ra(a.i,function(b,c){this.i.hasOwnProperty(c)&&Xb(b)},a);a.i={}}W.prototype.j=function(){W.o.j.call(this);bc(this)};W.prototype.handleEvent=function(){throw Error("EventHandler.handleEvent not implemented");};function cc(a){U.call(this);this.i=a||document.body;this.l=new W(this);a=na(yb,this.l);this.h?a():(this.g||(this.g=[]),this.g.push(a));a=this.l;var b=this.i,c=this.u,d="click";Array.isArray(d)||(d&&(ac[0]=d.toString()),d=ac);for(var e=0;e<d.length;e++){var f=Pb(b,d[e],c||a.handleEvent,!1,a.l||a);if(!f)break;a.i[f.key]=f}}h(cc,U);
cc.prototype.u=function(a){if(!(!(zb?0==a.i.button:"click"==a.type||a.i.button&Fb[0])||Sa&&a.ctrlKey||a.defaultPrevented))for(var b=a.target;b&&b!=this.i;){if(b.tagName&&"a"==b.tagName.toLowerCase()){var c=b.getAttribute("href")||b.getAttributeNS("http://www.w3.org/1999/xlink","href"),d=c;try{var e=rb(c)[3];var f;if(f="www.google.com"===pb(e,!0)){var g=rb(c)[5];f="/url"===pb(g,!0)}if(f){var k=sb(c,"q");d=k?k:sb(c,"url")}}catch(C){a:{var t=C;if(null!=t){var n=t.A;if(null!=n){C=n;break a}}if(t instanceof
TypeError){var R=n=new kb;R.l=B(t);hb(R);n.g="__noinit__";n.g=t;n.i(new TypeError(n));t=n}else R=n=new E,R.l=B(t),hb(R),n.g="__noinit__",n.g=t,n.i(Error(n)),t=n;C=t}if(!(C instanceof ib))throw C.h;}d=null!=d?d:"";if(c!=d){e=void 0;b={target:"_blank",noreferrer:!0};c=window;d instanceof q?f=d:(f="undefined"!=typeof d.href?d.href:String(d),f instanceof q||(f="object"==typeof f&&f.h?f.g():String(f),Fa.test(f)?f=new q(f,r):(f=String(f),f=f.replace(/(%0A|%0D)/g,""),f=(g=f.match(Ea))&&Da.test(g[1])?new q(f,
r):null)),f=f||Ha);d=b.target||d.target;g=[];for(e in b)switch(e){case "width":case "height":case "top":case "left":g.push(e+"="+b[e]);break;case "target":case "noopener":case "noreferrer":break;default:g.push(e+"="+(b[e]?1:0))}e=g.join(",");if((w("iPhone")&&!w("iPod")&&!w("iPad")||w("iPad")||w("iPod"))&&c.navigator&&c.navigator.standalone&&d&&"_self"!=d)e="A",g=document,e=String(e),"application/xhtml+xml"===g.contentType&&(e=e.toLowerCase()),g=e=g.createElement(e),f=f instanceof q?f:Ga(f),g.href=
u(f),e.setAttribute("target",d),b.noreferrer&&e.setAttribute("rel","noreferrer"),b=document.createEvent("MouseEvent"),b.initMouseEvent("click",!0,!0,c,1),e.dispatchEvent(b);else if(b.noreferrer){if(c=La("",c,d,e),b=u(f),c){Pa&&-1!=b.indexOf(";")&&(b="'"+b.replace(/'/g,"%27")+"'");c.opener=null;Ba.test(b)&&(-1!=b.indexOf("&")&&(b=b.replace(va,"&amp;")),-1!=b.indexOf("<")&&(b=b.replace(wa,"&lt;")),-1!=b.indexOf(">")&&(b=b.replace(xa,"&gt;")),-1!=b.indexOf('"')&&(b=b.replace(ya,"&quot;")),-1!=b.indexOf("'")&&
(b=b.replace(za,"&#39;")),-1!=b.indexOf("\x00")&&(b=b.replace(Aa,"&#0;")));b='<meta name="referrer" content="no-referrer"><meta http-equiv="refresh" content="0; url='+b+'">';if(void 0===m)if(d=null,(e=l.trustedTypes)&&e.createPolicy){try{d=e.createPolicy("goog#html",{createHTML:pa,createScript:pa,createScriptURL:pa})}catch(C){l.console&&l.console.error(C.message)}m=d}else m=d;b=(d=m)?d.createHTML(b):b;b=new x(b,null,Ka);(c=c.document)&&c.write&&(c.write(b instanceof x&&b.constructor===x?b.i:"type_error:SafeHtml"),
c.close())}}else(c=La(f,c,d,e))&&b.noopener&&(c.opener=null);a.h();break}}b=b.parentNode}};function dc(a){new cc(a)}var X=["DOCS_installLinkReferrerSanitizer"],Y=l;X[0]in Y||"undefined"==typeof Y.execScript||Y.execScript("var "+X[0]);for(var Z;X.length&&(Z=X.shift());)X.length||void 0===dc?Y[Z]&&Y[Z]!==Object.prototype[Z]?Y=Y[Z]:Y=Y[Z]={}:Y[Z]=dc;}).call(this);
</script><script type="text/javascript" nonce="">DOCS_installLinkReferrerSanitizer();</script></body></html>